package edu.sdjzu.exam.service.exam;

import edu.sdjzu.exam.dto.GradeExportDTO;
import org.springframework.core.io.ByteArrayResource;

import java.io.IOException;
import java.util.List;

/**
 * 成绩导出服务接口
 */
public interface GradeExportService {
    
    /**
     * 获取考试成绩数据
     * @param examId 考试ID
     * @return 成绩数据列表
     */
    List<GradeExportDTO.GradeExportData> getExamGradeData(Long examId);
    
    /**
     * 获取考试成绩统计信息
     * @param examId 考试ID
     * @return 统计信息
     */
    GradeExportDTO.GradeStatistics getExamGradeStatistics(Long examId);
    
    /**
     * 生成考试成绩报告
     * @param examId 考试ID
     * @return 成绩报告
     */
    GradeExportDTO.ExamGradeReport generateExamGradeReport(Long examId);
    
    /**
     * 导出Excel格式的成绩报告
     * @param examId 考试ID
     * @return Excel文件字节数组资源
     * @throws IOException IO异常
     */
    ByteArrayResource exportGradesToExcel(Long examId) throws IOException;
    
    /**
     * 导出CSV格式的成绩报告
     * @param examId 考试ID
     * @return CSV文件字节数组资源
     * @throws IOException IO异常
     */
    ByteArrayResource exportGradesToCsv(Long examId) throws IOException;
}